//-- 用数组模拟栈 ------------------------------
// 用数组的 API 实现栈的 push、pop、size、isEmpty 和 forEach
class Stack {
  #stack = [];

  push (value) {
    // 压栈（栈尾）
    this.#stack.push(value)
  }

  pop () {
    // 弹出（栈尾）
    return this.#stack.pop()
  }

  size () {
    return this.#stack.length
  }

  isEmpty () {
    return !this.#stack.length
  }

  forEach (cb) {
    typeof cb === 'function' && this.#stack.forEach(cb)
  }
}

const s = new Stack()
s.push(1)
s.push(2)
s.forEach((v) => console.log(v))

console.log("弹出: ", s.pop())
